Docker compose

您所在的位置:网站首页 docker compose 端口 Docker compose

Docker compose

2023-12-17 11:32| 来源: 网络整理| 查看: 265

Docker compose-实现多服务、nginx负载均衡、--scale参数解决端口冲突问题 问题:scale参数端口冲突解决方法:nginx实现多服务、负载均衡修改docker-compose.yml配置新增nginx本地配置文件验证启动容器查看容器状态访问web应用

问题:scale参数端口冲突

当使用如下docker-compose.yml配置,启动web为3个服务时,会出现端口冲突问题:

version: '3' services: web: build: ../ ports: - "5000:5000" redis: image: redis:3.0.7

启动命令:

docker-compose up --scale web=3

分析,ports: -“5000:5000”,主机5000端口映射到容器内的5000端口,如果多个启动容器,就会出现端口真占用冲突的问题

解决方法:nginx实现多服务、负载均衡

注意:原始项目构造请看Docker Compose的安装教程、使用教程示例的使用教程。

修改docker-compose.yml配置

如下:

version: '3' services: web: build: ../ expose: - "5000" redis: image: redis:3.0.7 ngixn: image: nginx:latest volumes: - ../nginx_conf/nginx.conf:/etc/nginx/nginx.conf:ro ports: - "4000:4000"

对比上面的2个docker-compose.yml,修改的地方在于:

web服务去掉ports参数,改为expose参数,解释:web容器内的5000端口不对主机开放,但是对关联的其他服务容器开放,其他容器可以访问web容器的5000端口增加nginx配置 valumes:挂载数据卷,将../nginx_conf/nginx.conf文件挂载到容器内的/etc/nginx/nginx.conf文件,nginx容器将以../nginx_conf/nginx.conf启动nginxports:主机4000端口映射到nginx容器内的4000端口 新增nginx本地配置文件

在目录../nginx_conf/下新增nginx.conf文件,如下:

user nginx; events { worker_connections 1000; } http { server { listen 4000; location / { proxy_pass http://web:5000; } } }

监听容器的4000端口,将请求转发到web服务的5000端口

验证 启动容器 docker-compose up --scale web=3

输出如下: 在这里插入图片描述 容器启动正常

查看容器状态 docker ps

如下 在这里插入图片描述 可以看到,3个web容器的5000端口如预期一样,没有开放给主机,主机4000端口映射到nginx容器内的4000端口。

访问web应用

访问虚机的4000端口,按照预期将会看到出现3个不同的容器名,如下 在这里插入图片描述在这里插入图片描述 在这里插入图片描述

总结:Docker compose通过nginx实现了多服务、负载均衡场景,并不会出现端口冲突问题!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3